#include "hardware.h"

struct Keys key;

void LED_Disp(uint8_t state)
{
    HAL_GPIO_WritePin(GPIOC, 0xFF00, GPIO_PIN_SET); //0ff
    HAL_GPIO_WritePin(GPIOC, state << 8, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
}

//void LED_DISP(uint8_t state)
//{
//	HAL_GPIO_WritePin(GPIOC, 0xFF00, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOC, state << 8, GPIO_PIN_RESET);
//	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
//}



void Key_Read(void)
{
    if (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == 0)
        key.value = 1;
    else if (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == 0)
        key.value = 2;
    else if (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) == 0)
        key.value = 3;
    else if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == 0)
        key.value = 4;
    else
        key.value = 0;
    key.down = key.value & (key.value ^ key.old);
    key.up  = ~key.value & (key.value ^ key.old);
    key.old = key.value;
}

double Get_ADC(ADC_HandleTypeDef *hadc)
{
    uint32_t adc;
    HAL_ADC_Start(hadc);
    adc = HAL_ADC_GetValue(hadc);
    return adc*3.3/4040;
}


